System and method for user intent recognition

ABSTRACT

A method of operating an exoskeleton system that includes determining a first state estimate for a current classification program being implemented by the exoskeleton system; determining a second state estimate for a reference classification program; determining that a difference between the first and second state estimate is greater than a classification program replacement threshold; generating an updated classification program; and replacing the current classification program with the updated classification program based at least in part on the determining that the difference between the first and second state estimates is greater than the classification program replacement threshold.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application is a non-provisional of and claims the benefit of U.S. Provisional Application No. 62/454,575, filed Feb. 3, 2017 entitled “SYSTEM AND METHOD FOR USER INTENT RECOGNITION,” which application is hereby incorporated herein by reference in its entirety and for all purposes.

This application is also a non-provisional of and claims the benefit of U.S. Provisional Application No. 62/485,284, filed Apr. 13, 2017entitled “SYSTEM AND METHOD FOR USER INTENT RECOGNITION,” which application is hereby incorporated herein by reference in its entirety and for all purposes.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an exemplary diagram illustrating an embodiment of an exoskeleton network.

FIG. 2 is an exemplary diagram illustrating another embodiment of an exoskeleton network.

FIG. 3 is an exemplary block diagram illustrating an embodiment of an exoskeleton system.

FIG. 4 illustrates an example method of updating a set of classification rules.

FIG. 5 illustrates an example method of improving classification programs of a plurality of exoskeleton systems.

FIG. 6 illustrates an example method of updating a classification program based on the state of one or more sensors of an exoskeleton system.

FIG. 7 illustrates an example method of tuning a classification program based at least in part on a user response to a classification determination.

FIG. 8 illustrates a method of determining whether to present a confirmation request for a classification determination.

FIG. 9 illustrates one embodiment of an exoskeleton processing network comprising three processing levels.

FIG. 10 is an exemplary illustration of an embodiment of an exoskeleton system.

FIG. 11 is an exemplary illustration of another embodiment of an exoskeleton system.

FIG. 12 is an exemplary illustration of a further embodiment of an exoskeleton system.

It should be noted that the figures are not drawn to scale and that elements of similar structures or functions are generally represented by like reference numerals for illustrative purposes throughout the figures. It also should be noted that the figures are only intended to facilitate the description of the preferred embodiments. The figures do not illustrate every aspect of the described embodiments and do not limit the scope of the present disclosure.

DETAILED DESCRIPTION

In one aspect, this application discloses example embodiments pertaining to the design of novel programs for the recognition of intent for users of one or more powered exoskeleton. Various embodiments described herein offer a substantial improvement over the intent recognition programs used in conventional devices. For example, a conventional method for intent recognition is the expert design of a finite state machine including designed transition guards that are ad hoc established by the developers to improve accuracy. In contrast, various example methods described herein allow intent recognition programs to adapt over time either based on learned performance or to adapt to the unique behavior of an individual operator. Various example methods described herein provide for intent recognition programs that are able to increase accuracy of recognition, reduce delay of recognition, and customize the performance for each user. Accordingly, various embodiments relate to methods that can be performed automatically, without human interaction, or with only minimal human interaction at limited specific desirable times as described herein.

Turning to FIG. 1, an example exoskeleton device network 100 of a first embodiment 100A is illustrated, which includes an exoskeleton system 110, a user device 120 and a classification server 130, which are operably connected via a network 140. Additionally, the exoskeleton system 110 and user device 120 are shown being directly operably connected.

In various embodiments described in more detail herein, an exoskeleton system 110 can be configured to communicate with a local user device 120, which can act as an input device, display, and/or user interface for the exoskeleton system 110. For example, the user device 120 can present information about various states of exoskeleton system 110 and the user device 120 can be used to control the exoskeleton system 110, including providing input related to state classification as discussed herein.

In the example of FIG. 1, the exoskeleton system 110 and user device 120 are shown being directly operably connected via a wireless communication channel (e.g., Bluetooth) and indirectly via the network 140, which can include one or more wired and/or wireless network including the Internet, a Wi-Fi network, a cellular network, a local area network (LAN), wide area network (WAN), or the like. However, in some embodiments, one of these operable connections can be absent. For example, in one embodiment, the exoskeleton system 110 can be configured to communicate with the user device 120 only via a direct local connection and not via the network 140. In another embodiment, the exoskeleton system 110 can be configured to only communicate via local communication channels with the user device 120, but unable to communicate with devices such as the classification server 130 or user device 120 via the network 140. In some examples, however, the exoskeleton system 110 can communicate with devices such as the classification server 130 via the user device 120.

In some embodiments, the classification server 130 can comprise one or more devices configured with various capabilities, which are described in more detail herein. While a physical server is shown in the example of FIG. 1, in further embodiments, the classification server 130 can comprise one or more virtual or non-virtual servers, or the like. In some examples, the classification server 130 can be absent.

Although the user device 120 in the example exoskeleton network 100 is shown as a smartphone, in further embodiments, various other suitable devices can comprise the user device 120, including a tablet computer, smart watch, laptop computer, desktop computer, gaming device, entertainment device, home automation device, embedded system, or the like. Additionally, in some examples, the user device 120 can be in integral part of the exoskeleton system 110. In other words, in some examples, user device 120 and exoskeleton system 110 can be combined. Additionally, in some embodiments, the user device 120 can be absent or present in any suitable plurality.

As described in more detail herein, the exoskeleton system 110 can be any suitable exoskeleton system having various capabilities. According, the example leg exoskeleton system 110 shown in FIG. 1 should not be construed as being limiting on the wide variety of exoskeleton systems that are within the scope and spirit of the present disclosure. Additionally, in some embodiments, an exoskeleton network 100 can comprise a plurality of exoskeleton systems 110. For example, FIG. 2 illustrates another embodiment 100B of an exoskeleton network 100 that comprises a plurality of exoskeleton systems 110A, 110B, 110C and a classification server 130.

FIG. 3 is a block diagram of an example embodiment 110D of an exomuscle system 110 that includes an exoskeleton device 310 that is operably connected to a pneumatic system 320. The exoskeleton device 310 comprises a processor 311, a memory 312, one or more sensors 313 and a communication unit 314. A plurality of actuators 305 are operably coupled to the pneumatic system 320 via respective pneumatic lines 330. The plurality of actuators 305 include pairs of shoulder-actuators 305S, elbow-actuators 305E, anterior knee-actuators 305KA, and posterior knee-actuators 305KP that are positioned on the right and left side of a body. For example, as discussed above, the example exomuscle system 110D shown in FIG. 3 can be part of top and/or bottom suits 110E, 110F (e.g., as shown in FIGS. 10 and 11), with the actuators 305 positioned on respective parts of the body as discussed herein. For example, the shoulder-actuators 305S can be positioned on left and right shoulders; elbow-actuators 305E can be positioned on left and right elbows; and anterior and posterior knee-actuators 305KA, 305KP can be positioned on the knee anterior and posterior.

In various embodiments, the example system 110D can be configured to move and/or enhance movement of the user wearing the exomuscle system 110D. For example, the exoskeleton device 310 can provide instructions to the pneumatic system 320, which can selectively inflate and/or deflate the actuators 305. Such selective inflation and/or deflation of the actuators 305 can move the body to generate and/or augment body motions such as walking, running, jumping, climbing, lifting, throwing, squatting, or the like.

In some embodiments, such movements can be controlled and/or programmed by the user that is wearing the exomuscle system 110D or by another person. In some embodiments, the exomuscle system 110D can be controlled by movement of the user. For example, the exoskeleton device 310 can sense that the user is walking and carrying a load and can provided a powered assist to the user via the actuators 305 to reduce the exertion associated with the load and walking. Accordingly, in various embodiments, the exomuscle system 110D can react automatically without direct user interaction. In further embodiments, movements can be controlled in real-time by a controller, joystick or thought control. Additionally, various movements can pre-preprogrammed and selectively triggered (e.g., walk forward, sit, crouch) instead of being completely controlled. In some embodiments, movements can be controlled by generalized instructions (e.g. walk from point A to point B, pick up box from shelf A and move to shelf B).

In various embodiments, the exoskeleton device 310 can be operable to perform methods or portions of methods described in more detail below, including methods 400, 500, 600, 700, 800 and the like. For example, the memory 312 can include non-transient computer readable instructions, which if executed by the processor 311, can cause the exoskeleton system 110 to perform methods or portions of methods described herein. The communication unit 314 can include hardware and/or software that allows the exoskeleton system 110 to communicate with other devices, including a user device 120, classification server 130, other exoskeleton systems 110, or the like, directly or via a network (see, e.g., FIGS. 1 and 2).

In some embodiments, the sensors 313 can include any suitable type of sensor, and the sensors 313 can be located at a central location or can be distributed about the exomuscle system 110D. For example, in some embodiments, the system exoskeleton system 110D can comprise a plurality of accelerometers, force sensors, position sensors, and the like, at various suitable positions, including at the actuators 305 or any other body location. Accordingly, in some examples, sensor data can correspond to a physical state of one or more actuators 305, a physical state of a portion of the exoskeleton system 110, a physical state of a portion of the exoskeleton system 110 generally, and the like. In some embodiments, the exoskeleton system 110D can include a global positioning system (GPS), camera, range sensing system, environmental sensors, or the like.

The pneumatic system 320 can comprise any suitable device or system that is operable to inflate and/or deflate the actuators 305. For example, in one embodiment, the pneumatic system can comprise a diaphragm compressor as disclosed in co-pending related patent application Ser. No. 14/577,817 filed Dec. 19, 2014, which claims the benefit of U.S. Provisional Application No. 61/918,578, filed Dec. 19, 2013.

As discussed herein, various suitable exoskeleton systems 110 can be used with the example systems and methods discussed herein, including exoskeleton systems 110 of FIGS. 10, 11 and 12, as described herein. However, such examples should not be construed to be limiting on the wide variety of exoskeleton systems 110 or portions thereof that are within the scope and spirit of the present disclosure. Accordingly, exoskeleton systems 110 that are more or less complex than the examples of FIGS. 3, 10, 11 and 12 are within the scope of the present disclosure.

Additionally, while various examples relate to an exoskeleton system 110 associated with the legs or lower body of a user, further examples can related to any suitable portion of a user body including the torso, arms, head, legs, or the like. Also, while various examples relate to exoskeletons, it should be clear that the present disclosure can be applied to other similar types of technology, including prosthetics, body implants, robots, or the like. Further, while some examples can relate to human users, other examples can relate to animal users, robot users, or the like.

The present disclosure includes various methods for developing example embodiments of a data driven intent recognition program for exoskeleton applications. Various preferred embodiments include an intent recognition system that uses data collected from the sensors 313 included in one or more exoskeleton system 110 in order to allow for unsupervised refinement of the intent recognition performance.

For example, data driven intent recognition program can comprise a classifier or other program that is processing sensor data (e.g., data received from one or more sensor 313) up to a point in time (t=0) to determine the intended maneuver of the user at that time. In other words, the exoskeleton system 110 can run a program that anticipates intended actions by a user wearing the exoskeleton system 110, based at least in part on received sensor data.

In some examples, a source of error for such programs or methods can be related to the ability of the real-time classifiers to deliver accurate predictions of the user's motions, in some cases before the operator has made significant physical motions to act on their intent. For example, if these programs are looking to identify the toe-off phase of the gait of a user wearing the exoskeleton system 110, the intent recognition program can seek to find an intent for the toe-off phase when only having sensor data contained within the following set t=[−1 n:0], given that sensors 313 cannot detect behaviors that have not yet occurred.

In various examples, a theoretically ideal program would be able to detect toe-off as soon as all ground contact signals at the foot go to zero. However, in a some systems, the program may have to compete with a variety of imperfections such as sensor noise, and the like, that mean the exoskeleton system 110 cannot respond to the signal the moment the ground contact signals drop to zero and in many cases would need to wait for the sensor data to repeatedly indicate ground contact has ended.

This can result in a delay to the speed of the classification behavior of such classification programs. As a result, some data driven intent recognition program incorporate supervision where an expert is able to parse the sensor data and indicate truth with the context of full sensor data such that the data driven methods can train themselves to best approximate the selections of the supervisory expert.

The present disclosure describes some example methods that can remove the need for an expert supervisor. Specifically, the behavior of classification methods can be significantly improved in some examples if the classifications were being completed on sensor data for time leading up to and after the specific time of interest, t=[−-n:n]. Accordingly, various embodiments discussed herein are directed to methods that focus on classification behavior.

Some example methods can reconsider the classification of a maneuver by a user of exoskeleton system 110 a set time in the past (consider t=−n), which can allow the classification program to use data from sensors 313 from before and after the maneuver by a user of exoskeleton system 110 in question which comprise times t=[−2n:0]. In some embodiments, classification via such a method can be completed much more accurately than a program that is responsible for instantaneously classifying maneuvers of a user of exoskeleton system 110. Accordingly, various example methods can use sensor data to refine the instantaneous prediction that would have taken place at t=−n, in an effort to make the exoskeleton system 110 perform more like the assumed truth data that is determined from the foresight classification.

In one embodiment, a process of comparing and updating instantaneous classification can happen on an off-board computer (e.g., a user device 120, classification server 130, or the like) and then refined classifier data can be redeployed onto one or more exoskeleton systems 110 in order to improve the performance of the one or more exoskeleton systems 110. In such an embodiment, pertinent sensor data can be streamed off the exoskeleton system 110 and processed on the classification server 130 where an updated or improved classification method can be generated. The resulting classification method data can be deployed to the exoskeleton device 110 to allow it to execute the refined intent recognition behavior embodied in the classification method data. However, in further embodiments, such processing can occur on one or more other suitable devices, including at the exoskeleton device 310 or at the user device 120 (e.g., a smartphone, a laptop computer, a server or other suitable device).

Some embodiments of this example method can provide high frequency updates of a classification program as fast as every control loop, while others can have significantly slower update cycles such as embodiments that only update the classification program once a year. Still others can update the classification program in non-periodic intervals based on other rules such as an embodiment that updates the local classification program of a exoskeleton system 110 when it is determined that the update will improve accuracy by 1% or other suitable amount or metric.

In some examples of adaptive exoskeleton systems 110 that are used in conjunction with human users, it can be important to be aware of the speed that the adaptive intent recognition is adapting. Specifically, if the adaptive exoskeleton system 110 adapts too fast, it could respond to intermittent atypical behaviors that are not representative of the user's typical motions. If the exoskeleton system 110 adapts a slight amount slower, it can be possible in some embodiments to create an adaptive exoskeleton system 110 that responds at a similar bandwidth to the user's own internal learning process associated with the user learning how to use the exoskeleton system 110. Where such tuned adaption speed is implemented, in some embodiments the exoskeleton system 110 can begin adapting its behaviors just as the user is beginning to trust how the exoskeleton system 110 works, leading to a new learning phase for the user.

As a result, it can be important in some examples for adaptive intent recognition programs to adapt at a speed significantly different than that of the users own internal adaptations. In many embodiments, this can be addressed by making the exoskeleton system 110 adapt at a speed significantly slower than that of the user. In other embodiments, the adaptation speed of an intent recognition program can be user-selectable to allow an operator or administrator to individually select the responsiveness of the intent adaptations of the exoskeleton system 110.

Accordingly, in various embodiments, the exoskeleton system 110 can change the speed of adaptation of an intent recognition program running on the exoskeleton system 110, based at least in part on input received at an interface at the exoskeleton system 110, based at least in part on input received at an interface at a user device 120, and/or via instructions received from a classification server 130. In further embodiments, the exoskeleton system 110 can automatically tune the speed of adaptation of an intent recognition program running on the exoskeleton system 110, without user input, based on sensor data or the like. For example, a determination can be made that the intent recognition program is adapting too fast for a user based at least in part on sensor data and the exoskeleton system 110 can automatically slow the speed of the intent recognition program so that the exoskeleton system 110 adapts at a speed that better meets the needs of the user.

For example, FIG. 4 illustrates an example method 400 of updating a set of classification rules, which can be embodied in a classification program stored in the memory 312 of an exoskeleton system 110. The method 400 beings, at 405, where an accuracy is determined for a current set of classification rules. For example, a baseline accuracy can be determined by applying the current set of classification rules to determine an estimate of an exoskeleton system 110 device state or user state at the time of interest (t=0). In other examples, an accuracy can be determined based at least in part on historical data related to the current set of classification rules, which can include data regarding successful and unsuccessful classification attempts using the current set of classification rules. An accuracy can be based on a ratio of successful and unsuccessful classification attempts in various embodiments.

At 410, an updated set of classification rules can be generated. For example, an updated set of classification rules can be generated in various suitable ways including via random changes to the current classification rules, changes to the current classification rules based on one or more heuristics, and the like. In other words, an updated set of classification rules can comprise changes to or a delta of the current set of classification rules. In further embodiments, an updated set of classification rules can be generated, which is not based on a current set of classification rules. In other words, an updated set of classification rules or a portion thereof can be generated without reference to or without consideration of the current set of classification rules. In various embodiments, a reference set of classification rules or a reference classification program can be generated in a similar manner.

At 415, an accuracy for the updated set of classification rules can be determined. For example, where a baseline accuracy is determined by applying the current set of classification rules to determine an estimate of an exoskeleton system 110 device state or user state at the time of interest (t=0) as discussed above, and then the updated classification rules can be applied at a fixed time later (t=n) to determine an estimate of an exoskeleton system 110 device state or user state at the original time of interest (t=0) using additional sensor information collected the later time frame (t≥n) and/or before the later time frame (e.g., n≥t≥0).

In other examples, an accuracy of the updated set of classification rules can be determined based at least in part on historical data associated with the exoskeleton system 110, which can include making classification attempts using historical data, and then such attempts can be analyzed to determine whether such classification attempts where successful or unsuccessful. An accuracy of the updated classification rules can be based on a ratio of successful and unsuccessful classification attempts by the updated classification rules. For example, successful and unsuccessful classification attempts by the updated classification rules can be determined based on data such as data used to determine successful and unsuccessful classification attempts by the current classification rules.

In some examples, the updated classification rules can be temporary implemented one or more exoskeleton system 110 and the updated classification rules can be evaluated based on actual use of the one or more exoskeleton system 110. Additionally, while evaluation of current or updated rules can be based on data of a single exoskeleton system 110, in some examples, such evaluation can be based on historical data from a plurality of exoskeleton systems 110 (see e.g., FIG. 2).

Returning to FIG. 4, the method 400 continues to 420 where an accuracy difference between the updated set of classification rules and the current set of classification rules is determined, and at 425, a determination is made whether the accuracy difference is greater than a replacement threshold. If not, the current set of classification rules is maintained at 430, and if so, at 435, the current set of classification rules is replaced by the updated set of classification rules. For example, where the updated classification rules are determined to provide a substantial improvement over the current set of classification rules, the current classification rules can be replaced by the improved updated classification rules. As shown in FIG. 4, such a method 400 can iteratively improve a current set of classification rules. For example, after 430 and 435 the method 400 can cycle back to 405 where the new or maintained set of classification rules is again evaluated.

In further examples, where estimated exoskeleton system 110 device states and/or user states are determined for the current and updated sets of classification rules, such estimates can be compared. If the results from the current set of classification rules is different than the results from the updated set of classification rules (which can be more accurate in some examples) then the current set of classification rules can be adapted to develop a second updated set of classification rules that is designed to better determine the classification accuracy of the time of interest (t=0). The current set of classification rules can be updated with, or can be replaced by, the second updated set of classification rules.

Accordingly, in some embodiments, a method of updating a set of classification rules can comprising determining a first state estimate for a current classification program being implemented by the exoskeleton system 110; determining a second state estimate for a reference classification program; determining that the difference between the first and second state estimate is greater than a classification program replacement threshold; generating an updated classification program; and replacing the current classification program with the updated classification program, based at least in part on the determining that the difference between the first and second state estimates is greater than the classification program replacement threshold.

In various embodiments, such methods can be performed locally at an exoskeleton system 110, locally at a user device 120 and/or remotely at a classification server 130. Additionally, the method 300, or portions thereof, can be performed automatically without user input. For example, an exoskeleton system 110 can automatically improve classification rules that the exoskeleton system 110 uses during operation of the exoskeleton system 110 without input by the user, an administrator, or the like. Similarly, a user device 120 and/or classification server 130 can similarly automatically improve classification rules that the exoskeleton system 110 uses during operation of the exoskeleton system 110 without input by the user, an administrator, or the like. Such automation can be desirable for efficiently improving the functioning of one or more exoskeleton system 110 without the need for, or with the limited need for input from users or administrators. Additionally, while classification rules are discussed in various examples herein, it should be clear that such methods can be applied to a classification program, intent recognition program, or the like, that embodies, employs, or enforces such classification rules. In various embodiments, a classification program and intent recognition program can refer to the same type of program, method, algorithm, or the like.

Unsupervised refinement of the intent recognition programs can be executed for a variety of reasons. For example, one embodiment can refine the intent recognition classification behavior in order to improve the performance of the classification across a population of users. In this embodiment, the same classification program can be deployed to a plurality of exoskeleton systems 110 and use a large pool of available data collected across the set of exoskeleton systems 110 in use to increase performance of the exoskeleton systems 110.

For example, as illustrated in FIG. 5, an example method 500 of improving classification programs of a plurality of exoskeleton systems 110 can begin at 510 where performance data is obtained from a plurality of exoskeleton systems 110. At 520, an updated classification method is generated based on the received performance data, and at 530, the updated classification program is sent to the plurality of exoskeleton systems 110. For example, in some embodiments, the method 500 can be performed by a classification server 130 (see, e.g., FIG. 2). However, in some embodiments, the method 500 can be implemented by a user device 120 and/or at one or more exoskeleton systems 110. Additionally, generating an updated classification program can include various suitable steps, including steps as described above in the method 400 of FIG. 4.

In another embodiment, the behavior of intent recognition programs can be refined to allow the performance of a specific exoskeleton system 110 to perform better for an individual user. Such an embodiment can refine the behavior of the intent recognition to improve the accuracy or the responsiveness of the classifications over time for the specific exoskeleton system 110. The specifics of these improved recognition behaviors for the specific exoskeleton system 110 can then be stored (e.g., on one or more local device such as in the memory 312 of the exoskeleton system 110, at a user device 120 and/or one or more remote device such as a classification server 130 or user device 120) for deployment onto a replacement exoskeleton system 110 or a different specific exoskeleton system 110 altogether to allow these specific exoskeleton system 110 to know the movements and preferences of the specific user.

Yet another embodiment can refine the behavior of an intent recognition program to accommodate changes in the response of sensors 313 of an exoskeleton system 110 over time. These updates to an intent recognition program can be designed to account for the normal variation of sensor behavior over time, to address the catastrophic failure of a sensor 313, and the like.

For example, FIG. 6 illustrates an example method 600 of updating a classification program based on the state of one or more sensors 313 of an exoskeleton system 110. The method 600 begins at 610 where an exoskeleton device sensor state is determined for an exoskeleton system 110 operating with a current classification program. At 620, a determination is made whether there is a change in the exoskeleton state. For example, a change in the state of one or more sensors 313 can include the sensor being operative/inoperative, change in calibration state, change in sensor accuracy, change in sensor physical position on the exoskeleton system 110, and the like. In some embodiments, a sensor state change can be associated with changes in parts of an exoskeleton system 110, including a change in one or more actuator 305, pneumatic system 320, pneumatic line 330, and the like. For example, problems, deterioration and/or material changes of parts of an exoskeleton system 110 can be associated with a change in a sensor state.

Where a change in the exoskeleton device sensor state is not identified in 620, the method 600 cycles back to 610, where exoskeleton device sensor state continues to be monitored. However, where a change in the exoskeleton device sensor state is identified in 620, the method 600 continues to 630, where an updated classification program is generated based at least in part on the identified change in the exoskeleton device sensor state, and at 640, the current classification program is replaced by the updated classification program.

For example, where changes in an exoskeleton system 110 result in sensors reporting sensor data differently, the current classification program of the exoskeleton system 110 may lose accuracy because it is not tuned to the changes in sensor data being ingested by the current classification program. Accordingly, such a change in exoskeleton device sensor state can be identified and a current classification program can be replaced with an updated classification program that is tuned to the change in the exoskeleton device sensor state.

For the performance of these programs, the specifics of the intent recognition classifier designs can have a significant impact on the performance of the programs in some embodiments. It is important to note that the specific classification program does not limit the application of the described methods in accordance with various embodiments. The use of the term classification or classifier within this description is used to denote an algorithm, program or method that specifies the intent of an operator of an exoskeleton system 110 at a certain time being considered. The classification program can include, but is not limited to, support vector machines, neural networks, linear discriminant analysis, quadratic discriminant analysis, dynamic bayes nets, hidden markov models, or the like.

For clarity, the programs used to recognize exoskeleton system user intent can be configured to identify a wide array of motions from the operator of an exoskeleton system 110. These can include motions, maneuvers, movements, stances, gaits, or the like, that are consciously and/or subconsciously executed by the operator. The specific motions that these intent recognition programs can be consider, analyze, classify, or the like, can include but are not limited to walking, standing, running, jumping, squatting, ascending stairs, descending stairs, landing, turning, sitting, grasping, reaching, or the like. Similarly, these intent recognition programs can be applied to identify mid-maneuver phases of the gait that may be important, which can include but are not limited to heel strike, mid stance, late stance, toe off, flight, ascending, descending, or the like.

The introduction of such new adaptive intent recognition programs can require new methods for the user to interact with the exoskeleton system 110 in some embodiments. For example, an embodiment can provide the user with manual intent override behaviors that the user can use to force the intent recognition program into a desired behavior in the event that it is not behaving as expected or desired. Another set of embodiments can include user feedback that allows the operator of an exoskeleton system 110 to influence the learning behavior of the data driven programs.

One such embodiment of feedback can provide the operator with manual choices to aid in refining performance of the exoskeleton system 110 through defining new behaviors that the exoskeleton system 110 has seen. For example, if an instantaneous classifier program believes the person is moving from standing to ascending stairs, but a foresight classifier program believes the person actually transitioned to squatting, the exoskeleton system 110 may find it useful to allow the user to confirm this change in performance.

For example, FIG. 7 illustrates an example method 700 of tuning a classification program based at least in part on a user response to a classification determination. The method 700 beings at 705, where a state change in an exoskeleton system 110 is sensed, and at 710, a classification for the sensed state change is determined. For example, the exoskeleton system 110 can obtain data from sensors 313 that is indicative of a user of the exoskeleton system 110 initiating new movement or a changing of movements. The classification program of the exoskeleton system 110 can classify the new movement.

At 715 the classification is presented to a user associated with the exoskeleton system 110, and at 720, a classification response is obtained from the user associate with the exoskeleton system 110. For example, in some embodiments a classification can be presented on a display (e.g., of a user device 120, exoskeleton device 310, or the like), and a user can provide a response (e.g., indicating rejection or confirmation of the classification) via a user input such as a touch screen, button, or the like. A user being presented the classification and/or providing a response to the classification can be a user wearing the exoskeleton system 110, an administrator working with user wearing the exoskeleton system 110, or the like.

At 725, a determination is made whether the classification response is a confirmation or a rejection, and if the user response is a rejection of the classification determination, then at 730 the classification program is tuned to weaken the classification determination. However, if the user response is a confirmation of the classification determination, then at 730 the classification program is tuned to strengthen the classification determination. For example, where the user confirms a classification determination, the classification program can be changed to reinforce the determination method used to make the classification determination. In another example, the where the user confirms a classification determination a record can be made of a successful classification, and if not, then a record of an unsuccessful classification can be generated. Such records of successful and unsuccessful classifications can be used as discussed herein (e.g., in method 300 discussed above).

While many items may be influential in determining the reason for seeking user confirmation, one metric can be to ask for confirmation whenever the refined classification is moving to a device state where the device will perform substantially different than it had under the original behavior. In other words, in some embodiments, user confirmation can be limited to changes in exoskeleton state that are above a threshold defines substantial changes compared to insubstantial changes.

For example, FIG. 8 illustrates a method 800 of determining whether to present a confirmation request for a classification determination. The method 800 begins at 810 where a first classification associated with associated with a first device state is determined, and at 820, a second classification associated with associated with a second device state is determined. At 830, a difference between the first and second device state is determined, and at 840, a determination is made whether the difference between the first and second device state is above a performance difference threshold. For example, in some embodiments, the difference can be above a performance difference threshold where a second behavior classification is moving to an exoskeleton state where the exoskeleton device will perform substantially different than it had under a first behavior classification.

If the difference between the first and second device state is determined to be above the performance difference threshold, then at 830, a confirmation request for the second classification is presented to a user. For example, see step 710 of the method 700 of FIG. 7. However, if the difference between the first and second device state is determined to not be above the performance difference threshold, then at 835, a confirmation request for the second classification is not presented to the user.

Another embodiment can provide the user with feedback that is tailored towards experience of the device such as manipulating the balance between classification accuracy and classification delay. For example, if the user is interested in maximizing performance but is in a safe scenario where they can absorb a higher potential of classification error, the user may elect to have the exoskeleton system 110 make intent recognition decisions with a lower level of confidence to get the exoskeleton system 110 to respond as fast as possible. For the purpose of clarity, the medium for these feedback features is not of specific importance in various embodiments. The feedback can be initiated by the user through a variety of input methods which include but are not limited to a cell phone, a personal computer, a remote control, a wearable companion controller, or the like (e.g., via the exoskeleton system 110 and/or user device 120). Additionally, input from a user can be provided in various suitable ways, including via a physical input such as a touch screen, buttons, an audio input (e.g., voice commands), or the like. Similarly, presentations to a user can be provided in various suitable ways with various suitable interfaces, including via a screen, audio output, haptic feedback, or the like.

Similar to how these new programs can require new interactions for users in the exoskeleton system 110, in some embodiments, such new programs can also introduce the need for new interactions for developers or end users that allow them to understand how the exoskeleton system 110 is operating. One embodiment includes a user interface that demonstrates to the interested party the performance of the exoskeleton system 110. For example, the user interface can graphically depict the allowable maneuver transitions and identify the transitions that the exoskeleton system 110 has demonstrated a low chance of accurately classifying. Other embodiments can include information regarding the accuracy of these intent recognition classifications over time. Still other embodiments can provide insight on how to improve the performance of the intent recognition program performance, through identifying a specific maneuver where not enough information has been collected yet or by identifying changes in exoskeleton system 110 behaviors that may be leading to changes in intent recognition program performance.

Other embodiments can provide feedback to the designers of exoskeleton systems 110 as to which sensors 313 have the greatest impact on the performance of the exoskeleton system 110. For example, if the designer has visualized the transition of the exoskeleton system 110 and is attempting to improve the accuracy of a specific transition. The user interface can suggest the addition of other sensors 313, or sensor accuracies, that have shown to improve this classification in previous training examples.

For the purpose of clarity, various examples of this disclosure are focused toward the design and implementation of exoskeleton systems 110; however, further examples have application to a wide range of worn devices where the device is using onboard sensors for the purpose of recognizing the intended behavior of a user. A specific example of this is footwear, specifically the potential of active footwear, where the device uses included sensors to determine the intended behavior of the operator such that it can report statistics, or adapt the performance characteristics for the user.

The methods described herein can be employed in various suitable operating environments. For example, embodiments can comprise an exoskeleton system 110 that includes one or more sensors 313 disposed about the exoskeleton device and configured to sense various states of the exoskeleton system 110, including movement, rotation, acceleration, orientation, temperature, or the like. As discussed herein, such an exoskeleton system 110 can be associated with one or more body parts of a user. For example, some embodiments can be associated only with the legs of a user, whereas others can be associated with the legs, torso and arms.

The exoskeleton system 110 can comprise one or more actuators configured to move the exoskeleton system 110 in various suitable ways. Such actuators can include fluidic actuators (e.g., actuators 305), motor actuators, or the like. The exoskeleton system 110 can also comprise a control system operable to control the actuators and such a control system can be operably coupled to the sensors and actuators. The exoskeleton system 110 can also comprise components such as a power source, processor 311 and memory 312 with software or firmware that is operable to perform at least a part of the methods described herein.

Some embodiments can include a plurality of processing levels. For example, FIG. 9 illustrates one embodiment of an exoskeleton processing network 900 comprising three processing levels. A first architectural level of the network 900 can comprise local processing elements on an exoskeleton system 110, including a data collection process 910 and a classification program execution process 920. For example, the data collection process 910 can obtain and process data obtained from sensors 313 (see, e.g., FIG. 3), and send such processed data to the classification execution process 920, which runs a classification program, which can include a classification program as discussed herein. Various embodiments can implement the processing at the exoskeleton system 110 through a variety of methods, including but not limited to, a single centralized embedded DSP, a set of distributed processors, background calculation processes, in real time processes, or the like.

A second architectural level of the network 900 can comprise a nearby secondary processing unit, which can include a user device 120 or the like (See, e.g., FIG. 1). The user device can execute a feature extraction process 930, which receives data from the data collection process 910 at the exoskeleton system 110, performs actions including feature extraction, and the like. As discussed herein, this user device 120 can be operably coupled to the exoskeleton system 110 through a suitable communication channel such as a Bluetooth connection, or the like. This second layer can be operated on a processing unit that can be overseen by the user of the user device 120. This second layer can be operated on various suitable user devices 120 as discussed herein, including a cell phone, a personal computer, or the like.

A third processing level can comprise a network-based processing system such as a classification server 130 (see e.g. FIGS. 1 and 2) that is remote to the user device 120 and exoskeleton system 110, and in various embodiments, not directly controlled by the user of the exoskeleton system 110 and user device 120. The third processing level at the classification server 130 can include a label derivation process 940 that receives data from the feature extraction process 930 at the user device 120, and performs label derivation on the received data. Date resulting from label derivation at the label derivation process 940 can be provided to a classification program update process 950 that generates an updated classification program based at least in part on data generated by label derivation process 940. The classification program update process 950 can send updated classification program data to the user device 120, and the user device 120 can send the updated classification program data to the classification program execution process 920 at the exoskeleton system 110, where a current classification program being executed by the classification program execution process 920 can be replaced with an updated classification program embodied in the received updated classification program data.

For clarity, other embodiments can add to, remove, or reconfigure the aspects of the example processing layers shown in FIG. 9. Accordingly, the present example should not be construed to be limiting on the wide variety of alternative embodiments that are within the scope and spirit of the present disclosure.

Various embodiments can comprise a number of discrete processes. These can include a data collection process 910, a feature extraction process 930, a label derivation process 940, a classification program update process 950, a classification program execution process 920, and the like. While some of these example discrete processes can be executed on specific processing units as shown in the example of FIG. 9, some processes can be architected and processed in a variety of processing levels. For example, the data collection process 910 and classification program execution process 920 can be executed on the user device 120, with other processes deployed on other processing levels, including at the classification server 130 or exoskeleton system 110. Accordingly, while a specific example is illustrated in FIG. 9, other suitable configurations of processes are within the scope and spirit of the present disclosure.

Another aspect of this disclosure is with regards to the frequency and distribution of the classification program updates. In many embodiments, the value of the classification program update can be provided through regular distribution of improved classification programs. In many cases, this can be driven due to the high capital costs associated with the hardware of most conventional exoskeletons 110. However, in some embodiments, the cost of hardware can change the highest value distribution method. In this embodiment, it may prove to be most valuable for the and update method to harvest data off devices that are in the field and then update the classification program, but only deploy the updated classification programs on new versions of the hardware.

One embodiment can use footwear as the device hardware. In this embodiment, the hardware distributor may use the updated algorithms to drive adoption of their new version of footwear as their business model centers around annual model sales. This embodiment can still make full use of features of embodiments described herein and in related patent application 62/454,575 referenced above, however, it can use a discrete deployment architecture that is deploying intent classification program that have been trained through unsupervised learning onto new hardware as opposed to the old hardware that is expected to go obsolete within a few months.

Turning to FIG. 10, one embodiment 110E of a pneumatic exomuscle system 110 is shown as comprising a plurality of actuators 305 disposed at locations of a shirt 1020 that is being word by a user 1001. A shoulder-actuator 305 S is shown positioned over the shoulder 1005 of the user 1001. An elbow-actuator 305E is shown positioned over the elbow 1003 of the user 1001. A wrist-actuator 305W is shown positioned over the wrist 1004 of the user 1001.

Similarly, FIG. 11 illustrates another embodiment 110F of a pneumatic exomuscle system 110 that is shown comprising a plurality of actuators 305 disposed at locations on leggings 1120 that are being worn on the legs 1101 of a user 1001. An anterior knee-actuator 305KA and posterior knee-actuator 305KP are shown positioned on respective anterior 1102A and posterior 1102P sides of the knee 1102 of the user 1001. An anterior hip-actuator 305HA and posterior hip-actuator 305HP are shown positioned on respective anterior 1103A and posterior 1103P sides of the hip 1103 of the user 1001. An ankle actuator 305A is shown positioned on the ankle 1104 of the user 1001

Although FIGS. 10 and 11 illustrate separate top and bottom suits 110E, 110F, in various embodiments the pneumatic exomuscle system 110 can be configured to cover the entire body of a user 1001 or portions of the body a user 1001. For example, the pneumatic exomuscle system 110 can be embodied in a complete body suit, an arm sleeve, a leg sleeve, a glove, a sock, or the like. Additionally, although actuators 305 are depicted being positioned over the elbow 103, wrist 104, shoulder 105, knee 1102, hip 1103 and ankle 1104, any one or more of these actuators 305 can be absent and/or additional actuators 305 can be present in any other suitable location. For example, actuators 305 can be present on hands, feet, neck, torso, or the like. FIG. 12 illustrates one example embodiment 110G of an exoskeleton system 110 that includes ankle actuators 305A positioned on the ankles 1104 of the user 1001

Furthermore, the present disclosure discusses various embodiments of the pneumatic exomuscle system 110 being worn by a human user 1001, but in further embodiments, the pneumatic exomuscle system 110 can be adapted for use by non-human users (e.g., animals) or adapted for non-living devices such as robots or the like. For example, one embodiment includes the use of the pneumatic exomuscle system 110 and/or one or more actuator 305 in a robotic arm not worn on the body 1001, which is also known as a robotic manipulator.

The described embodiments are susceptible to various modifications and alternative forms, and specific examples thereof have been shown by way of example in the drawings and are herein described in detail. It should be understood, however, that the described embodiments are not to be limited to the particular forms or methods disclosed, but to the contrary, the present disclosure is to cover all modifications, equivalents, and alternatives. 

What is claimed is:
 1. An exoskeleton network comprising: a wearable pneumatic exoskeleton system that includes: a plurality of pneumatic actuators configured to be associated with body parts of a user wearing the pneumatic exoskeleton system, a pneumatic system configured to introduce pneumatic fluid to the plurality of pneumatic actuators to actuate the plurality of pneumatic actuators, and an exoskeleton computing device including: a plurality of sensors, a memory storing at least a classification program, and a processor that executes the classification program that controls the pneumatic system based at least in part on classifications generated by the classification program of sensor data obtained from the plurality of sensors; a user device that is local to the wearable pneumatic exoskeleton system and that operably communicates with the wearable pneumatic exoskeleton system; and a classification server that is remote from the user device and the wearable pneumatic exoskeleton system and that operably communicates with the wearable pneumatic exoskeleton system and the user device remotely via the Internet, wherein the exoskeleton network: determines a first state estimate for a current classification program being implemented by the wearable pneumatic exoskeleton system, the first state estimate being a first prediction of an intended user action using the current classification program processing a first set of sensor data obtained from the plurality of sensors of the wearable pneumatic exoskeleton system; determines a second state estimate for a reference classification program that is not being implemented by the wearable pneumatic exoskeleton system, the second state estimate being a second prediction of the intended user action using the reference classification program processing the first set of sensor data obtained from the plurality of sensors of the wearable pneumatic exoskeleton system; determines that a difference between the first and second state estimates is greater than a classification program replacement threshold based at least in part on determining that the second prediction of the intended user action is more accurate than the first prediction of the intended user action; generates an updated classification program based at least in part on the reference classification program; and replaces the current classification program being implemented by the wearable pneumatic exoskeleton system with the updated classification program such that the updated classification program is implemented by the wearable pneumatic exoskeleton system in place of the current classification program, based at least in part on the determining that the difference between the first and second state estimates is greater than the classification program replacement threshold and the determining that the second prediction of the intended user action is more accurate than the first prediction of the intended user action.
 2. The exoskeleton network of claim 1, further comprising a plurality of wearable pneumatic exoskeleton systems that are remote from each other, are worn by different users and that operably communicate with the classification server, each of the plurality of wearable pneumatic exoskeleton systems including: a plurality of pneumatic actuators configured to be associated with body parts of the respective user wearing the pneumatic exoskeleton, a pneumatic system configured to introduce pneumatic fluid to the plurality of actuators to actuate the plurality of actuators, and an exoskeleton computing device including: a plurality of sensors, a memory storing at least a classification program, and a processor that executes the classification program that controls the pneumatic system based at least in part on classifications by the classification program of sensor data obtained from the plurality of sensors.
 3. The exoskeleton network of claim 2, wherein the classification server replaces a respective current classification program of the plurality of wearable pneumatic exoskeleton systems with the updated classification program, based at least in part on the determining that an accuracy difference between a determined first accuracy of the current classification program and a determined second accuracy of the reference classification program is greater than the classification program replacement threshold, wherein the first accuracy of the current classification program is determined based at least in part on a number of successful and unsuccessful intended user action predictions during the current classification program processing a second set of sensor data obtained from the plurality of sensors of the wearable pneumatic exoskeleton system, and wherein the second accuracy of the reference classification program is determined based at least in part on a number of successful and unsuccessful intended user action predictions during the reference classification program processing the second set of sensor data obtained from the plurality of sensors of the wearable pneumatic exoskeleton system.
 4. The exoskeleton network of claim 1, wherein the classification server generates the updated classification program.
 5. The exoskeleton network of claim 4, wherein the classification server generates the updated classification program based at least in part on classification program performance data received from a plurality of separate exoskeleton systems that are remote from each other and worn by different users.
 6. An exoskeleton system that includes: a plurality of actuators configured to be associated with body parts of a user wearing the exoskeleton system, and an exoskeleton computing device including: a plurality of sensors, a memory storing at least a classification program, and a processor that executes the classification program that controls the plurality of actuators based at least in part on classifications generated by the classification program of sensor data obtained from the plurality of sensors; wherein the exoskeleton system: determines a first state estimate for a current classification program being implemented by the exoskeleton system, the first state estimate being a first prediction of a user action using the current classification program processing a first set of sensor data obtained from the plurality of sensors of the exoskeleton system; determines a second state estimate for a reference classification program, the second state estimate being a second prediction of a user action using the reference classification program processing the first set of sensor data obtained from the plurality of sensors of the exoskeleton system; determines that a difference between the first and second state estimates is greater than a classification program replacement threshold; generates an updated classification program; and replaces the current classification program with the updated classification program, based at least in part on the determining that the difference between the first and second state estimates is greater than the classification program replacement threshold.
 7. The exoskeleton system of claim 6, wherein the exoskeleton system further: identifies a change in an exoskeleton device sensor state being above a threshold; generates a second updated classification program based at least in part on the identified change in the exoskeleton device sensor state; and replaces the updated classification program with the second updated classification program.
 8. The exoskeleton system of claim 6, wherein the exoskeleton system further: senses an exoskeleton state change; determines a first classification for the exoskeleton state change using the updated classification program; presents the first classification to the user associated with the exoskeleton system; obtains a classification response associated with the presented first classification; and modifies the classification program based at least in part on the classification response.
 9. The exoskeleton system of claim 8, wherein the first classification is presented to the user via a display screen associated with the exoskeleton system.
 10. The exoskeleton system of claim 8, wherein the classification response is obtained from a user selection via a button or a touch screen associated with the exoskeleton system.
 11. The exoskeleton system of claim 8, wherein the exoskeleton system further: determines a previous classification of a previous exoskeleton state, occurring before the exoskeleton state change; determines that a difference between the previous classification and the first classification at least meets a performance difference threshold; and presents the first classification to the user associated with the exoskeleton system based at least in part on the determining that the difference between the previous classification and the first classification at least meets the performance difference threshold.
 12. A method of operating an exoskeleton system comprising: determining a first state estimate for a current classification program being implemented by the exoskeleton system, the first state estimate being a first prediction using the current classification program processing at least a first set of sensor data; determining a second state estimate for a reference classification program, the second state estimate being a second prediction using the reference classification program processing at least the first set of sensor data; determining that a difference between the first and second state estimates is greater than a classification program replacement threshold; generating an updated classification program; and replacing the current classification program with the updated classification program, based at least in part on the determining that the difference between the first and second state estimates is greater than the classification program replacement threshold.
 13. The method of operating the exoskeleton system of claim 12, further comprising generating the updated classification program based at least in part on classification program performance data generated at the exoskeleton system.
 14. The method of operating the exoskeleton system of claim 12, further comprising sensing an exoskeleton state change; and determining a first classification for the exoskeleton state change using the updated classification program.
 15. The method of operating the exoskeleton system of claim 14, further comprising: presenting the first classification to a user associated with the exoskeleton system; obtaining a classification response associated with the presented first classification; and modifying the classification program based at least in part on the classification response.
 16. The method of operating the exoskeleton system of claim 14, wherein the first classification comprises at least one of: walking, standing, running, jumping, squatting, ascending stairs, descending stairs, landing, turning, sitting, grasping or reaching.
 17. The method of operating the exoskeleton system of claim 16, wherein the first classification is based at least in part on sensor data obtained from a plurality of sensors associated with the exoskeleton system.
 18. The method of operating the exoskeleton system of claim 17, wherein the plurality of sensors are respectively associated with a set of actuators of the exoskeleton system.
 19. The method of operating the exoskeleton system of claim 14, wherein the current classification program and the updated classification program comprises at least one of: a support vector machine, neural network, linear discriminant analysis, quadratic discriminant analysis, dynamic bayes net, or hidden markov model.
 20. The method of operating the exoskeleton system of claim 14, further comprising changing a speed of adaptation of the updated classification program based at least in part on input received from a user. 